home *** CD-ROM | disk | FTP | other *** search
/ Video Toaster 4.3 / Video Toaster v4.3.iso / 3.1 / toasterall / arexx_examples / toasterobics.rexx < prev    next >
OS/2 REXX Batch file  |  1993-06-06  |  8KB  |  278 lines

  1. /*  Toasterobics.rexx, Exersizes as many Arexx switcher functions as possible */
  2. /* By Arnie Cachelin © 1991 NewTek Inc. */
  3. /* Sat Jun  5 22:53:15 1993 */
  4.  
  5. OPTIONS RESULTS
  6. TOASTERLIB="ToasterARexx.port"
  7.  
  8.  
  9. ARG count
  10. if count="" then count=0
  11. SIGNAL ON ERROR
  12.  
  13. IF POS(TOASTERLIB , SHOW('Libraries')) = 0 THEN
  14.   IF ~ADDLIB(TOASTERLIB , 0) THEN x=Bummer(" Please start your Toaster.")
  15.  
  16. /* Set up convenient way of getting all switcher status info */
  17. status.1="MAIN"
  18. meaning.1="Program row state (2^n)"
  19. status.2="PREV"
  20. meaning.2="Preview row state (2^n)"
  21. status.3="OVLY"
  22. meaning.3="Overlay row state (2^n)"
  23. status.4="FREZ"
  24. meaning.4="Frozen Video?"
  25. status.5="TEXT"
  26. meaning.5="Text in keypad window"
  27. status.6="TBAR"
  28. meaning.6="T-Bar level"
  29. status.7="KEYM"     /* Luma Key: (black|white|off) */
  30. meaning.7="Luminance Key mode"
  31. status.8="CLIP"
  32. meaning.8="Luminance Key level"
  33. status.9="SPED"     /* speed (S|M|F) for current effect */
  34. meaning.9="Speed setting"
  35. status.10="FCNT"    /* # of frames for current effect */
  36. meaning.10="Current effect frame count"
  37. status.11="KNUM"    /* keypad number */
  38. meaning.11="Current keypad number"
  39. status.12="GRID"
  40. meaning.12="Current Effect #"
  41. status.13="BANK"
  42. meaning.13="Current Bank"
  43. status.14="INFO"
  44. meaning.14="Current Num. Keypad selection "
  45. status.15="BACK"
  46. meaning.15="Current Background Color"
  47. status.16="BORD"
  48. meaning.16="Current Border Color"
  49. status.17="TERM"
  50. meaning.17="Current Termination mask"
  51. status.18="SGPI"
  52. meaning.18="Current GPI mode"
  53. status.19="FACE"
  54. meaning.19="Current Monitor Mode"
  55. status.20="FMDV"
  56. meaning.20="Currently Available Framestore Devices"
  57. status.21="PJDV"
  58. meaning.21="Currently Available Project Devices"
  59. status.22="FXNM"
  60. meaning.22="Current  Effect Name"
  61. statnum=22
  62. ans.0="No"
  63. ans.1="Yes"
  64.  
  65. call Switcher(MDV1) /* put Program and Preview outputs on framestores */
  66. call Switcher(PDV2)
  67. Say "Current Effect: "CurrentEffect()
  68. call ShowTermination
  69. say "Screen bitmap at "d2x(Switcher(GROF))
  70. call Switcher(GRON)
  71. say "Setting 2 monitor mode"
  72. call Switcher(FACE,2)
  73. call Switcher(WAIT,30)
  74. say "Setting 3 monitor mode"
  75. call Switcher(FACE,3)
  76. do i=1 to StatNum
  77.   say meaning.i" = "Switcher(STAT,status.i)
  78.   end
  79. testdev="RAM:"
  80. say "Current Project Device: "Switcher(PJNM)
  81. say "Current Framestore Device: "Switcher(FSNM)
  82. say "Let's look at "testdev
  83. t=Switcher(PJCK,testdev)
  84. say "Project dir on "testdev"? "ans.t
  85. t=Switcher(FSCK,testdev)
  86. say "Framestore dir on "testdev"? "ans.t
  87. say "Room for "Switcher(FSCT,testdev)" frames on "testdev
  88. if ~Switcher(PJCK,testdev) then
  89.   say "let's make a Project dir on "testdev": "Switcher(PJMK,testdev)
  90. if ~Switcher(FSCK,testdev) then
  91.   say "let's make a Framestore dir on "testdev": "Switcher(FSMK,testdev)
  92. t=Switcher(PJCK,testdev)
  93. say "Project dir on "testdev"? "ans.t
  94. t=Switcher(FSCK,testdev)
  95. say "Framestore dir on "testdev"? "ans.t
  96. say "Room for "Switcher(FSCT,testdev)" frames on "testdev
  97.  
  98. call Switcher(SGPI,POS)    /* Set GPI trigger to positive (leading edge of pulse) */
  99. /* Switcher(WAIT,GPI) */    /* Wait for GPI trigger to come in */
  100. call Switcher(KEYM)        /* Toggle Luma Key mode (B or W) */
  101. call Switcher(FRES)        /* Reset frame counter for Wait below */
  102. call Switcher(O001)        /* Overlay to input 1 */
  103. do i=0 to 257 by 10
  104.   call Switcher(CLIP,i)      /* Set key clip level */
  105.   call Switcher(WAIT,60)     /* Wait for a number of frames (30/sec) */
  106. end
  107. call Switcher(KOFF)
  108. call Switcher(TOSW)
  109. /* call Switcher(WAIT,GPI)   */  /* Wait for GPI trigger to come in */
  110. do i=0 to 511 by 10
  111.   call Switcher(TBAR,i)      /* Set T-Bar level */
  112.   call Switcher(WAIT,60)     /* Wait for a number of frames (30/sec) */
  113. end
  114. call Switcher(AUTO)
  115.   call Switcher(CHGR,'A')    /* Change grid (A-I) */
  116.   call Switcher(WAIT,40)
  117.   call Switcher(CHGR,'B')
  118.   Call Switcher(WAIT,40)
  119.   Call Switcher(CHGR,'C')
  120.   Call Switcher(WAIT,40)
  121.   Call Switcher(CHGR,'D')
  122.   Call Switcher(WAIT,40)
  123.   Call Switcher(CHGR,'E')
  124.   Call Switcher(WAIT,40)
  125.   Call Switcher(CHGR,'F')
  126.   Call Switcher(WAIT,40)
  127.   Call Switcher(CHGR,'G')
  128.   Call Switcher(WAIT,40)
  129.   Call Switcher(CHGR,'H')
  130.   Call Switcher(WAIT,40)
  131.   Call Switcher(CHGR,'I')
  132.   Call Switcher(WAIT,40)
  133.  
  134. Say "Freeze: "Switcher(STAT,FREZ)
  135. Call Switcher(FREZ)
  136. Say "Freeze: "Switcher(STAT,FREZ)
  137. Call Switcher(FREZ)
  138. Say "Freeze: "Switcher(STAT,FREZ)
  139. say "Free chip memory: "Switcher(MEMC)
  140. say "Largest free chip memory: "Switcher(MEMC,L)
  141. say "Free fast memory: "Switcher(MEMF)
  142. say "Largest free fast memory: "Switcher(MEMF,L)
  143.  
  144. pre.=""
  145. pre.0="MEDM"
  146. pre.1="FAST"
  147. pre.2="SVAR"
  148. pre.3="SLOW"
  149. t=Switcher(STAT,FXNM)
  150. Say "Current Effect: "t
  151. sp=Switcher(STAT,SPED)
  152. preset=bitand(sp,3)
  153. varsp=(bitclr(sp,0))
  154. varsp=(bitclr(varsp,1))/4
  155. say "Current Speed: "pre.preset"  Variable Rate: "varsp
  156. do i=0 to 3
  157.   call Switcher(pre.i)
  158.   end
  159.  
  160. do i=1 to count
  161.   say "Loading Paint"
  162.   Call Switcher(LDTP)        /* Load ToasterPaint */
  163.   say "Did it work: "Switcher(CKTP)
  164.   say "Free chip memory: "Switcher(MEMC)
  165.   say "Largest free chip memory: "Switcher(MEMC,L)
  166.   say "Free fast memory: "Switcher(MEMF)
  167.   say "Largest free fast memory: "Switcher(MEMF,L)
  168.  
  169. /* say "Entering Paint" */
  170. /* Call Switcher(STTP)  */       /* Enter ToasterPaint */
  171. /* say "Leaving Paint" */
  172. /* Address 'DigiPaint' 'Quit' */
  173. /* say "Back in switcher!" */
  174.  
  175.   say "Loading LightWave"
  176.   Call Switcher(LDLW)        /* Load LightWave */
  177.   say "Did it work: "Switcher(CKLW)
  178.   say "Free chip memory: "Switcher(MEMC)
  179.   say "Largest free chip memory: "Switcher(MEMC,L)
  180.   say "Free fast memory: "Switcher(MEMF)
  181.   say "Largest free fast memory: "Switcher(MEMF,L)
  182.   say "Loading CG"
  183.   Call Switcher(LDCG)        /* Load ToasterCG */
  184.   say "Did it work: "Switcher(CKCG)
  185.   say "Free chip memory: "Switcher(MEMC)
  186.   say "Largest free chip memory: "Switcher(MEMC,L)
  187.   say "Free fast memory: "Switcher(MEMF)
  188.   say "Largest free fast memory: "Switcher(MEMF,L)
  189.   say "Unloading CG"
  190.   Call Switcher(DPCG)        /* Unload ToasterCG */
  191.   say "Did it work: "Switcher(CKCG)
  192.   say "Free chip memory: "Switcher(MEMC)
  193.   say "Largest free chip memory: "Switcher(MEMC,L)
  194.   say "Free fast memory: "Switcher(MEMF)
  195.   say "Largest free fast memory: "Switcher(MEMF,L)
  196.   say "Unloading LightWave"
  197.   Call Switcher(DPLW)        /* Unload LightWave */
  198.   say "Did it work: "Switcher(CKLW)
  199.   say "Free chip memory: "Switcher(MEMC)
  200.   say "Largest free chip memory: "Switcher(MEMC,L)
  201.   say "Free fast memory: "Switcher(MEMF)
  202.   say "Largest free fast memory: "Switcher(MEMF,L)
  203.   say "Unloading Paint"
  204.   Call Switcher(DPTP)        /* Unload ToasterPaint */
  205.   say "Did it work: "Switcher(CKTP)
  206.   say "Free chip memory: "Switcher(MEMC)
  207.   say "Largest free chip memory: "Switcher(MEMC,L)
  208.   say "Free fast memory: "Switcher(MEMF)
  209.   say "Largest free fast memory: "Switcher(MEMF,L)
  210.   end
  211.  
  212. Call Switcher(TOWB)
  213. EXIT
  214.  
  215. CutAndFade: Procedure   /* Select fade transition for pulsing effect */
  216.   Call Switcher(TAKE)
  217.   Call Switcher(AUTO)
  218.   return 1
  219.  
  220. RandomCrouton: PROCEDURE          /*  Select a random crouton!, some may not do the right thing! */
  221.   grd=translate(random(1,6),"ABCDEF","123456") /* random letter generator! */
  222.   TOASTCmd= "t=Switcher(Grid,"GRD||RANDOM(1,4)||RANDOM(1,8)||")"
  223.     SAY TOASTCmd
  224.   INTERPRET TOASTCmd
  225.   return t
  226.  
  227. LoopKeyPad: Procedure       /* loop through all keypad choices 'til we're back */
  228.   arg DoMe                  /* optional command to execute with each number */
  229.   N=Switcher(STAT,KNUM)     /* Get the keypad number */
  230.   c=1
  231.   Call Switcher(KEYP)            /* press the '+' key */
  232.   do While Switcher(STAT,KNUM)~=N
  233.     Call Switcher(KEYP)
  234.     c=c+1
  235. /*     if DoMe~="" Then do */
  236. /*        interpret DoMe */
  237. /*     end */
  238.   end
  239.   return c
  240.  
  241. ERROR:
  242.   call Switcher(TOWB)
  243.   say 'Sorry, Error #'RC' on line 'SIGL' has been detected.'
  244.   say ErrorText(RC)
  245.   say sourceline(SIGL)
  246.   call Bummer()
  247.   return
  248.  
  249. Bummer: PROCEDURE
  250.  arg etxt
  251.  say etxt
  252.  EXIT
  253.  return 0
  254.  
  255. ShowTermination: PROCEDURE
  256.   mask=Switcher(STAT,TERM)
  257.   do i=1 to 4
  258.     if BITTST(mask,4-i) then TS.i='ON'
  259.     else TS.i="OFF"
  260.     end
  261.   Say "Current Termination Settings (mask="mask" ("right(c2b(d2x(mask)),4)")):"
  262.   do i=1 to 4
  263.     Say '    Input'i' = 'TS.i
  264.     end
  265.   return mask
  266.  
  267. CurrentEffect: PROCEDURE
  268.   effect=Switcher(STAT,GRID)
  269.   if effect<=0 then return ""
  270.   n=Switcher(STAT,BANK)
  271.   cbank=translate(n,'ABCDEFGHI','012345678')
  272.   fx=effect - (n)*32  /* Position relative to bank start */
  273.   row=(fx%8) + 1
  274.   col=(fx//8) + 1
  275.   say "FX#: "effect fx" Bank: "cbank"("n")  Row: "row" Col: "col
  276.   return(cbank||row||col)
  277.  
  278.